
# 定义一个索引转换的过滤器
import functools

from flask import session, current_app, g

from info.models import User


def index_convert (index):
    index_dic = {1 : 'first', 2 : 'second',3 : 'third'}
    return index_dic.get(index,'')


# 定义一个在新闻页面添加登录的判断的装饰器
def user_login_data(f):
    @functools.wraps(f) # 可以让闭包函数wrapper　使用制定函数的　f　函数的信息
    # 如：wrapper.__name__
    def wrapper(*args,**kwargs):
        # 判断用户是否登录
        user_id  = session.get('user_id')
        user = None
        if user_id:
            # 根据user_id查询用户模型
            try:
                user = User.query.get(user_id)

            except BaseException as e:
                current_app.logger.error(e)

        g.user = user # 让g变量记录查询的用户数据

        # 再执行原有功能
        return f(*args,**kwargs)
    return wrapper
